// 在 node.js 环境中一个 .js 文件就是一个模块
// 每个文件中的所有源代码都被 module wrapper 包裹到一个函数中
// https://nodejs.org/dist/latest-v18.x/docs/api/modules.html#the-module-wrapper
// 在 node.js 调用 module wrapper 之前会创建一个表示该模块的对象(即通过参数传入的 module 实例)

console.log('exports: ', exports ); // module wrapper 的 第 1 个参数

console.log('require函数: ');
console.log( require.toString() ); // module wrapper 的 第 2 个参数

console.log('module: ', module ); // module wrapper 的 第 3 个参数

console.log('文件路径: ', __filename); // module wrapper 的 第 4 个参数

console.log('文件目录: ', __dirname); // module wrapper 的 第 5 个参数

console.log( '- '.repeat(30) );

console.log( arguments.callee.toString() );